// Copyright (C) 2023 即时通讯网(52im.net) & Jack Jiang.
// The RainbowChat Project. All rights reserved.
// 
// 【本产品为著作权产品，合法授权后请放心使用，禁止外传！】
// 【本次授权给：<北京小羊驼科技有限公司>，授权编号：<NT231212144350>，代码指纹：<A.702363430.550>，技术对接人微信：<ID: wxid_wbyootvkdcgj22>】
// 【授权寄送：<收件：苏先生、地址：北京市大兴区北京密码西区6号楼1单元301、电话：18613885610、邮箱：bd@huiyuanxiang-inc.com>】
// 
// 【本系列产品在国家版权局的著作权登记信息如下】：
// 1）国家版权局登记名(简称)和权证号：RainbowChat    （证书号：软著登字第1220494号、登记号：2016SR041877）
// 2）国家版权局登记名(简称)和权证号：RainbowChat-Web（证书号：软著登字第3743440号、登记号：2019SR0322683）
// 3）国家版权局登记名(简称)和权证号：RainbowAV      （证书号：软著登字第2262004号、登记号：2017SR676720）
// 4）国家版权局登记名(简称)和权证号：MobileIMSDK-Web（证书号：软著登字第2262073号、登记号：2017SR676789）
// 5）国家版权局登记名(简称)和权证号：MobileIMSDK    （证书号：软著登字第1220581号、登记号：2016SR041964）
// * 著作权所有人：江顺/苏州网际时代信息科技有限公司
// 
// 【违法或违规使用投诉和举报方式】：
// 联系邮件：jack.jiang@52im.net
// 联系微信：hellojackjiang
// 联系QQ号：413980957
// 授权说明：http://www.52im.net/thread-1115-1-1.html
// 官方社区：http://www.52im.net
package com.x52im.mall.logic.shop;

import java.text.MessageFormat;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RatingBar;
import android.widget.TextView;
import android.widget.Toast;

import com.eva.framework.dto.DataFromClient;
import com.eva.framework.dto.DataFromServer;
import com.eva.framework.dto.SysActionConst;
import com.x52im.mall.IntentFactory;
import com.x52im.mall.dto.CommonProcessorConst;
import com.x52im.mall.shop.dto.Comment;
import com.x52im.mall.shop.dto.JobDispatchConst;
import com.x52im.mall.shop.dto.SODetail;
import com.x52im.rbchat.R;
import com.x52im.mall.MallGlobal;
import com.eva.android.AutoUpdateDaemon;
import com.eva.android.widget.DataLoadableActivity;
import com.eva.android.widget.DataLoadingAsyncTask;
import com.eva.epc.common.util.CommonUtils;

/**
 * 
 * @author Jason
 * 
 */
public class OrderConfirmCommentActivity extends DataLoadableActivity
{

	private SODetail soDetail = null;
	
	private TextView proNameView = null;
	
	private TextView countView = null;
	
	private EditText commentContentView = null;
	
	private RatingBar commentRating = null;
	
	private Button subBtn = null;
	
	private Comment comment = null;
	/**
	 * {@inheritDoc}
	 */
	@Override
	protected void initDataFromIntent()
	{
		soDetail = IntentFactory.parseOrderComfirmCommentActivityIntent(getIntent());
	}

	@Override
	protected void initViews(Bundle savedInstanceState)
	{
		customeTitleBarResId = R.id.common_mall_shop_layout_order_confirm_comment_titleBar;
		// 首先设置contentview
		setContentView(R.layout.common_mall_shop_layout_order_confirm_comment);

		proNameView = (TextView) findViewById(R.id.common_mall_shop_order_comment_product_name);
		countView = (TextView) findViewById(R.id.common_mall_shop_order_comment_count);
		commentRating = (RatingBar) findViewById(R.id.common_mall_shop_order_comment_rating);
		commentContentView = (EditText) findViewById(R.id.common_mall_shop_order_confirm_comment_review_content);
		subBtn = (Button)findViewById(R.id.common_mall_shop_order_confirm_comment_submitBtn);
		
		proNameView.setText(soDetail.getDevice_id());
		countView.setText(MessageFormat.format($$(R.string.common_mall_shop_order_confirm_comment_count), soDetail.getPurchase_quantity()));
		
		setTitle(R.string.common_mall_shop_order_confirm_comment_title);
	}

	@Override
	protected void initListeners()
	{
		subBtn.setOnClickListener(new View.OnClickListener()
		{
			
			@Override
			public void onClick(View v)
			{
				// TODO Auto-generated method stub
				if(validCommnetInfo())
				{
					comment = new Comment();
					comment.setDevice_id(soDetail.getDevice_id());
					comment.setSo_detail_id(soDetail.getSo_detail_id());
					comment.setEva_score(Math.round(commentRating.getRating()) + "");
					comment.setEva_content(String.valueOf(commentContentView.getText()));
					comment.setFor_user_uid(MallGlobal.getMallProviderInstance(OrderConfirmCommentActivity.this).getRobotimeMall().getLoginedUserUid());
					new DataAsyncTask().execute();
				}
			}
		});
	}
	

	@Override
	protected DataFromServer queryData(String... arg0)
	{
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	protected void refreshToView(Object arg0)
	{
		// TODO Auto-generated method stub
	}
	
	
	/**
	 * 提交数据请求和处理的异步执行线程实现类.
	 */
	protected class DataAsyncTask extends DataLoadingAsyncTask<String, Integer, DataFromServer>
	{
		public DataAsyncTask()
		{
			super(OrderConfirmCommentActivity.this, $$(R.string.common_mall_shop_order_confirm_comment_submitting));
		}

		/**
		 * 在后台执行 {@link doLogin()}实现登陆信息的提交和处于结果的读取 .
		 * 
		 * @param parems
		 *            外界传进来的参数
		 * @return 查询结果，将传递给onPostExecute(..)方法
		 */
		@Override
		protected DataFromServer doInBackground(String... params)
		{
			// 要发送给服务端的对象
			return MallGlobal.getMallProviderInstance(OrderConfirmCommentActivity.this).getRobotimeMall().getAuthedService().sendObjToServer(
					DataFromClient.n().setProcessorId(CommonProcessorConst.PROCESSOR_SHOP_NEED$AUTHED)
					.setJobDispatchId(JobDispatchConst.SHOP_GOODS_MGR_NEED$AUTHED)
					.setActionId(SysActionConst.ACTION_APPEND3)
					.setNewData(comment));
		}

		/**
		 * 处理服务端返回的登陆结果信息.
		 * 
		 * @see AutoUpdateDaemon
		 * @see #needSaveDefaultLoginName()
		 * @see #afterLoginSucess()
		 */
		protected void onPostExecuteImpl(Object result)
		{
			Boolean res = Boolean.valueOf(String.valueOf(result));
			if(res)
			{
				setResult(Activity.RESULT_OK);
				finish();
			}
		}
	}
	
	
	private boolean validCommnetInfo()
	{
		if (commentRating.getRating() == 0)
		{
			Toast.makeText(OrderConfirmCommentActivity.this, R.string.common_mall_shop_order_confirm_comment_tip, Toast.LENGTH_LONG).show();
			return false;
		}
		if (CommonUtils.isStringEmpty(String.valueOf(commentContentView.getText())))
		{
			Toast.makeText(OrderConfirmCommentActivity.this, R.string.common_mall_shop_order_confirm_comment_tip2, Toast.LENGTH_LONG).show();
			return false;
		}
		return true;
	}

}
